package com.mmall.concurerency.annoations;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

/**----------------------------------------------------
 *    用来标记【推荐】的类或者写法
 *-----------------------------------------------------/

@Target(ElementType.TYPE)  //注解的作用目标
/**
*    @Target(ElementType.TYPE)             //接口、类、枚举、注解
*    @Target(ElementType.FIELD)            //字段、枚举的常量
* 　　@Target(ElementType.METHOD)           //方法
* 　　@Target(ElementType.PARAMETER)        //方法参数
* 　　@Target(ElementType.CONSTRUCTOR)      //构造函数
* 　　@Target(ElementType.LOCAL_VARIABLE)   //局部变量
* 　　@Target(ElementType.ANNOTATION_TYPE)  //注解
* 　　@Target(ElementType.PACKAGE)          ///包
 */
@Retention(RetentionPolicy.SOURCE)  //注解的保留位置　
/**
 * @Retention(RetentionPolicy.SOURCE)    注解仅存在于源码中，在class字节码文件中不包含
 * @Retention(RetentionPolicy.CLASS)     默认的保留策略，注解会在class字节码文件中存
 * @Retention(RetentionPolicy.RUNTIME)   注解会在class字节码文件中存在，在运行时可以通过反射获取到
 */

//此外还有2个没有用到，而用的比较多的注解
//  @Document：说明该注解将被包含在javadoc中
//  @Inherited：说明子类可以继承父类中的该注解

public @interface Recommend {
  String value() default "";
}
